import axios from 'axios';
import { nanoid } from 'nanoid';

// Person组件相关的模块化
const personsOptions = {
    // 如果在使用模块化的时候，如果想在mapState里面通过第一个参数指定分类的话，就必须指定namespaced 参数才可以
    // 默认namespaced是false
    namespaced: true,
    actions: {
        addPersonWang(context, value) {
            if (value.name.indexOf('王') === 0) {
                context.commit('ADD_PERSON', value);
            } else {
                alert('添加的人必须姓王！！！');
            }
        },
        addPersonServer(context, value) {
            axios.get('https://api.uixsj.cn/hitokoto/get?type=social').then(
                response => {
                    context.commit('ADD_PERSON', {
                        id: nanoid,
                        name: response.data
                    });
                },
                error => {
                    alert(error.message);
                }
            );
        }
    },
    mutations: {
        ADD_PERSON(state, value) {
            console.log('mutations中的ADD_PERSON被调用了')
            state.personList.unshift(value);
        }
    },
    state: {
        personList: [
            { id: '001', name: '张三' }
        ]
    },
    getters: {
        firstPersonName(state) {
            return state.personList[0].name;
        }
    }
}

export default personsOptions;
